package com.deyuanyun.pic.settings.service.pipe;

import com.deyuanyun.pic.common.dto.DTOResult;
import com.deyuanyun.pic.settings.controller.dto.PipeLineInfraVO;
import com.deyuanyun.pic.settings.controller.dto.PipeValidateVO;
import com.deyuanyun.pic.settings.domain.pipe.PipeLine;
import org.springframework.cache.annotation.Cacheable;

import java.util.List;

/**
 * 
 * @作者: 严祥
 * @创建时间: 2015年8月18日
 * @类名称: PipeLineService.java
 * @类说明:管线操作Service层接口
 * 
 */
public interface PipeLineService {

	PipeLine selectByPrimaryKey(String id);
	
	PipeLine selectByPrimaryKeyCache(String id);

	public PipeLine getLineByName(String name);
	/**
	 * 
	 * 
	 * @创建者:严祥
	 * @创建时间：2015年8月19日下午2:27:43
	 * @方法说明:得到所有管线信息
	 * @参数:@return
	 * @return:DTOResult
	 * 
	 */
	public DTOResult getPiPelLine();

	List<PipeLine> getLine();

	/**
	 * 查询所有管道(条件查询)，含分页
	 * @param
	 * @return
	 * @throws
	 * @author axiao(xj08.dream@gmail.com)
	 * @date 2016-09-02
	 */
	List<PipeLine> selectByCondition(PipeLineInfraVO pipeLineInfraVO);

	/**
	 * 验证管道的名字或者代号是否重复
	 * @param pipeValidateVO
	 * @return
	 * @author axiao(xj08.dream@gmail.com)
	 * @date 2016-11-25
	 */
	public boolean validateRepByline(PipeValidateVO pipeValidateVO);

	/**
	 * 根据管道id批量删除未发布的管道信息
	 * @param ids 管道id数组
	 * @return
	 * @author axiao(xj08.dream@gmail.com)
	 * @date 2016-09-02
	 */
	public int deleteLineByIds(String[] ids);

	/**
	 *  管道数据发布
	 *  @author axiao(xj08.dream@gmail.com)
	 *  @date 2016-09-02
	 *  @version 1.0
	 *  Histroy: [修改人][时间][描述]
	 */
	public int updateStatus(String[] ids);

	/**
	 * 管道启用、停用数据修改
	 * @param ids
	 * @param status 0为启用，1为停用
	 * @return
	 * @author axiao(xj08.dream@gmail.com)
	 * @date 2016-09-02
	 */
	public int updateLineS(String[] ids, String status);

    /**
     * 新增管道，并设置管道下的场站阀室
     * @param lineName 管道名称
     * @param lineAbridge 管道代号
     * @param rvIds 场站阀室id数组
     * @return 
     * @author axiao(xj08.dream@gmail.com)
     * @date 2016-09-03
     */
    public void insertPipeLineInfo(String lineName, String lineAbridge, String[] rvIds);

    /**
     * 更新管道信息
     * @param rvIds 管道选择的场站阀室id
     * @return
     * @author axiao(xj08.dream@gmail.com)
     * @date 2016-09-03
     */
    public void updatePipeLineInfo(PipeLineInfraVO pipeLineInfraVO, String[] rvIds);
}
